iT邦幫忙

2024 iThome 鐵人賽

DAY 22
0

前言

我們在 如何在 Visual Studio Code 內設定與使用 GitHub Copilot 這篇文章中,曾以簡單範例呈現 GitHub Copilot Chat 功能。在本篇與下一篇文章,我們將完整說明 GitHub Copilot Chat 功能與各種使用範例。

 
 
 

GitHub Copilot Chat 如何運作

GitHub Copilot Chat 執行流程大致上可以分成下列幾個階段

  • 輸入處理

Copilot Chat 系統取得使用者輸入資訊進行預先處理,並產生輸入提示(input prompt)。使用者可以採用程式碼片段或口語形式,且限制只能詢問資訊技術問題。

  • 語言模型分析與產生回覆。

在此階段,語言模型分析上一個步驟產生的輸入提示 (input prompt),並藉此產生回覆。回覆內容可能為程式碼、程式碼建議或說明。

  • 輸出格式設定

Copilot Chat 將產生的回覆格式化並呈現給使用者。 其中可能包含語法醒目提示、縮排和其他格式化功能來增加回覆內容的清楚性。 除此之外,還可以提供模型在產生回應時使用的內容連結,如原始程式碼檔案或文件。

理所當然,回覆內容可能不是使用者的想要的答案。請記得它是 Copilot (副駕駛),使用者才是 pilot (駕駛員):使用者是需要 review 並確認內容是否適當,

 
 
 

如何開啟 GitHub Copilot Chat

使用者可以透過快速檢視 (Quick View) 或 聊天檢視 (Chat View) 方式開啟對話框與 GitHub Copilot 互動。快速檢視 好處在於會參考前後文;聊天檢視 則需要透過選擇程式碼範圍、斜線命令或指定內容等操作來做為參考內容。

在 Visual Studio Code 內 Quick View 可以透過 Ctrl + I 或 Ctrl + Shift + I 快速開啟

https://ithelp.ithome.com.tw/upload/images/20241006/20091494zEIpO2Mlfi.png

也能透過滑鼠右鍵 > Copilot > 在編輯器啟動 開啟 Quick View
https://ithelp.ithome.com.tw/upload/images/20241006/20091494aaXscNo8Jt.png

在 Visual Studio Code 內 Chat View 可以延伸模組快捷鍵或 右下角 GitHub Copilot Icon 透過開啟
https://ithelp.ithome.com.tw/upload/images/20241006/200914942K7kZEZrff.png

 
 
 

使用 GitHub Copilot Chat - Quick Chat

我們可以 如何在 Visual Studio Code 內設定與使用 GitHub Copilot 這邊文章中引用的官方範例,來嘗試使用 GitHub Copilot Chat。使用這可以隨意選取一段程式碼,直接詢問問題:請說明這段程式碼作用?
https://ithelp.ithome.com.tw/upload/images/20241006/20091494efbNFhaC9A.png

或者是請 GitHub Copilot 協助給予建議並調整程式,詢問:我如何更新這段程式碼,確保不會有重複的數字
https://ithelp.ithome.com.tw/upload/images/20241006/20091494HD0OEEu6oX.png

https://ithelp.ithome.com.tw/upload/images/20241006/20091494rMAuzmgUth.png

 
 
 

使用 GitHub Copilot Chat - Chat View

透過 Chat View,使用者可以詢問廣泛性的問題,像是 Python 語言優勢。您也能像 Quick View,先選取一段程式碼,請 GitHub Copilot Chat 進行說明或給予建議,差別在於 Chat View 不會將程式碼直接填寫上去,而是在 Chat View 中顯示,使用者需要自行複製、貼上並調整內容,以符合目前程式碼內容。除此之外,在使用過程中,個人經常會思考一個問題:我可以請 GitHub Copilot 給我那些建議?

  • 建議對現有程式碼基底進行改進
    • 程式碼品質:提高程式碼可讀性、可維護性和效能的方法。 這可以包括重構、程式碼簡化和模組化的建議。
    • 程式碼可靠性:使您的程式碼更加強固和可靠。 這可能包括錯誤處理、輸入驗證和防禦程式設計的建議。
    • 程式碼效能:最佳化程式碼效能的方法。 這可以包括演算法改進、資料結構最佳化和並行的建議。
    • 程式碼安全性:使程式碼更安全的方法。 這可以包括對輸入清理、存取控制和加密的建議。

有時候使用 Qucik Chat 與 Chat View 問相同的問題會得到不同的答案,在下方案例,我們詢問相同的問題,但卻出現不同的結果。有一說法是兩種詢問方式背後使用的模型不同,也有說法是不同的時空背景會產生不同建議是正常的。這部分我們暫時沒去探究,只是先讓讀者知道這件事情。
https://ithelp.ithome.com.tw/upload/images/20241006/20091494hmZYcAjAFc.png

 
 
 

後記 - 使用一陣子後…?

有經驗的使用者可能有感受到與 什麼是 Prompt Engineering 章節所到相同,如何給予好的提示與樣本有時候相當不容易。在下一章節,我們將進階說明 GitHub Copilot Chat 中的提示建構,包含聊天參與者 @、斜線命令 / 與 聊天變數 # 的使用方法,讓使用者可以簡化且明確給 Copilot 的提示,更準確地取得想要的建議。


上一篇
GitHub Copilot 自動建議與完成功能介紹
下一篇
GitHub Copilot Chat 進階說明 - 提示建構
系列文
現代化應用程式開發與維運 - GitHub Codespace 與 GitHub Copilot30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言